package com.example.design.c.state.demo3;

/**
 * 阻塞状态具体实现类
 */
public class StateBlocked extends ThreadAbstractState {
    /**
     * 构造方法初始化线程状态名称
     */
    public StateBlocked() {
        this.setStateName("阻塞");
    }

    /**
     * 调用复位方法
     * 使线程状态变为就绪状态
     */
    @Override
    public boolean resume(ThreadContext context) {
        System.out.println("============================");
        System.out.println("线程复位...");
        String stateName = context.getState().getStateName();
        if ("阻塞".equals(stateName)) {
            context.setState(new StateRunnable());
            context.showState();
            return true;
        }
        System.out.println("非'新建'或者'阻塞'状态无法调用resume方法");
        return false;
    }
}
